home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOSUTILS / MIDRESET.DOC < prev    next >
Text File  |  1997-03-05  |  5KB  |  158 lines

  1.         ******************************
  2.             MIDRESET v1.1
  3.  
  4.     add/remove reset sysex commands to/from midi binaries
  5.               by Guenter Nagler
  6.                 1997
  7.           (gnagler@ihm.tu-graz.ac.at)
  8.         ******************************
  9.  
  10. [0] FEATURES
  11.     + reads a binary midi file
  12.     + writes a binary midi file
  13.     + removes sysex reset commands (XG, GM, GS)
  14.     + optionally adds one or more sysex reset commands (XG, GM, GS)
  15.       to beginning of midi song
  16.  
  17. [1] BACKGROUND
  18. Correct initialization of a midi output device (soundcard or keyboard)
  19. is necessary, or there might be problems with the programs (midi
  20. instruments) causing bad sound.
  21. Often midi files leave a device in an unexpectable state, so that next
  22. midi files that don't initialize continue playing within this state.
  23.  
  24. Usual problems are:
  25.   * drums are played by Piano
  26.   * pitchbend wheel is used with wrong pitchbend range 
  27.   * special sounds of soundcard are not used (e.g. GS, XG) and the
  28.     standard sounds are not a good replacement for certain songs
  29.  
  30. This utility can be used to modify midi files by removing or adding 
  31. reset commands for different GM compatible modes:
  32.   GM   General Midi 
  33.   GS   General Standard (Roland)
  34.   XG   Extended General Midi (Yamaha)
  35.  
  36. [2] FILES DESCRIPTION
  37.  
  38. MIDRESET.EXE.........converter program
  39. MIDRESET.DOC.........this file, showing usage of MIDRESET.EXE
  40. MIDIIO.HPP..........header file for a c++ midi parser
  41. MIDIIO.CPP..........source code for a c++ midi parser
  42. MIDRESET.CPP.........c++ source code for modifying midi files
  43. MIDRESET.MAK.........make file for project
  44. MIDRESET.CFG.........compiler options for make
  45. MIDRESET.PRJ.........compiler project for Borland (tm) c++ compilers
  46. only MIDRESET.EXE is required to run program
  47.  
  48. [3] COPYRIGHT
  49.  
  50. MIDRESET (c) 1997 was created by Guenter Nagler.
  51.  
  52. MIDRESET is free and may be used as you wish with this one exception:
  53.  
  54.     You may NOT charge any fee or derive any profit for distribution
  55.     of MIDRESET.  Thus, you may NOT sell or bundle MIDRESET with any
  56.     product in a retail environment (shareware disk distribution, CD-ROM,
  57.     etc.) without permission of the author.
  58.  
  59. You may give MIDRESET to your friends, upload it to a BBS, or ftp it to
  60. another internet site, as long as you don't charge anything for it.
  61.  
  62. [4] DISCLAIMER
  63.  
  64. MIDRESET was designed to handle 100% compatible midi files.
  65. The midi parser was tested with 600 different midi files but 
  66. I can not say if each 100% midi compatible midi file can be 
  67. correctly converted.
  68. So I give no guarantees of the results, especially with non 100% 
  69. compatible midi files.
  70. If you find a midi file that you think to be 100% compatible midi
  71. that is not correctly converted, please send a sample file to 
  72. gnagler@ihm.tu-graz.ac.at . 
  73.  
  74. Use MIDRESET at your own risk.  Anything you do with MIDRESET is your
  75. responsibility, and not the author's.  Any damage caused to any person,
  76. computer, software, hardware, company, or business by running MIDRESET
  77. is your responsibility, and the author will not be liable.
  78.  
  79. If you don't understand these terms, or are not sure of something, or
  80. are afraid something bad might come of using MIDRESET, don't  use  it!
  81. You are here forewarned.
  82.  
  83. [5] INSTALLATION
  84.  
  85. [MSDOS]
  86. Simply copy MIDRESET.EXE in a directory that is in your path.
  87. When you start the program without arguments
  88.  
  89. [UNIX]
  90. compile sources with your C++ compiler (e.g. GNU Compiler g++):
  91.  
  92. g++ -o midreset midreset.cpp midiio.cpp
  93.  
  94. and run program
  95.  
  96. $ midreset
  97.  
  98. C:\> MIDRESET
  99.  
  100. you should get the usage text (see next section)
  101.  
  102. [6] USAGE
  103.  
  104. usage: MIDRESET [-gm] [-xg] [-gs] midifile.mid gmfile.mid
  105.  
  106. The parts in brackets [...] are optional.
  107.  
  108. The program MIDRESET allows following option:
  109. -version    get program version
  110. -xg        add XG reset command
  111. -gs        add GS reset command
  112. -gm        add GM reset command
  113.  
  114. Following sysex commands found in the midi file will be removed (ignored):
  115.   GM Reset    F0 7E 7F 09 01 F7 
  116.   GS Reset    F0 0A 41 10 42 12 40 00 7F 00 41 F7 
  117.   XG Reset    F0 08 43 10 4C 00 00 7E 00 F7 
  118.   GS Exit     F0 0A 41 10 42 12 40 00 7F 7F 42 F7 
  119.  
  120. All other commands will be copied.
  121.  
  122. Option -xg adds sysex to beginning of first track:
  123.   XG Reset    F0 08 43 10 4C 00 00 7E 00 F7 
  124.  
  125. Option -gs adds sysex to beginning of first track:
  126.   GS Reset    F0 0A 41 10 42 12 40 00 7F 00 41 F7 
  127.  
  128. Option -gm adds sysex to beginning of first track:
  129.   GM Reset    F0 7E 7F 09 01 F7 
  130.  
  131. Hint: It is allowed to add more than one reset commands.
  132.   The order is defined by program:  GM XG GS
  133.  
  134. [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
  135.  
  136.          WWW:    http://hgiicm.tu-graz.ac.at/Cpub
  137.           contains all my dos/unix midi programs
  138.          EMAIL:  gnagler@ihm.tu-graz.ac.at
  139.  
  140. [9] USE
  141.  
  142. example: remove any reset sysex commands in a midi file
  143.  
  144.    midreset reset.mid noreset.mid
  145.  
  146. example: add GM reset sysex to midi file
  147.  
  148.    midreset -gm original.mid orig_gm.mid
  149.  
  150. example: add XG reset sysex to midi file
  151.  
  152.    midreset -gm -xg original.mid orig_xg.mid
  153.  
  154. [10] CHANGES
  155. v1.0 to v1.1:
  156.   * use GM Reset sysex "F0 05 7E 7F 09 01 F7" instead of "F0 7E 7F 09 01 F7"
  157.     because second does not work with some programs/devices
  158.